import turtle as T 
import random
import time
from math import *

class Test1:
    '''彩色、花瓣直接在地'''
    def __init__(self):
        self.run()

    # 樱花树躯干
    def Tree(self, branch, t):
        time.sleep(0.0005)
        if branch > 3:
            if 8 <= branch <= 12:
                if random.randint(0, 2) == 0:
                    t.color('snow')  # 白
                else:
                    t.color('lightcoral')  # 淡珊瑚色
                t.pensize(branch / 3)
            elif branch < 8:
                if random.randint(0, 1) == 0:
                    t.color('snow')
                else:
                    t.color('lightcoral')  # 淡珊瑚色
                t.pensize(branch / 2)
            else:
                t.color('sienna')  # 赭(zhě)色
                t.pensize(branch / 10)  # 6
            t.forward(branch)
            a = 1.5 * random.random()
            t.right(20 * a)
            b = 1.5 * random.random()
            self.Tree(branch - 10 * b, t)
            t.left(40 * a)
            self.Tree(branch - 10 * b, t)
            t.right(20 * a)
            t.up()
            t.backward(branch)
            t.down()


    # 掉落的花瓣
    def Petal(self, m, t):
        for i in range(m):
            a = 200 - 400 * random.random()
            b = 10 - 20 * random.random()
            t.up()
            t.forward(b)
            t.left(90)
            t.forward(a)
            t.down()
            t.color('lightcoral')  # 淡珊瑚色
            t.circle(1)
            t.up()
            t.backward(a)
            t.right(90)
            t.backward(b)

    # 动态绘画樱花树
    def run(self):
        # 绘图区域
        t = T.Turtle()
        # 画布大小
        w = T.Screen()
        t.hideturtle()  # 隐藏画笔
        t.getscreen().tracer(5, 0)
        w.screensize(bg='wheat')  # wheat小麦
        t.left(90)
        t.up()
        t.backward(150)
        t.down()
        t.color('sienna')

        # 画樱花的躯干
        self.Tree(60, t)
        # 掉落的花瓣
        self.Petal(200, t)
        w.exitonclick()




Test1()



